#include<iostream>
#include<vector>
#include<unistd.h>
#include<sys/types.h>
using namespace std;

const int num = 10;//一次创建10个子进程

void SubProcessRun()
{
    while(true)
    {
        
        cout << "我是子进程，我的PID是：" << getpid() << "，我的PPID是：" << getppid() << endl;
        sleep(5);
    }
}

int main()
{
    vector<pid_t> allchild;
    for(int i = 0; i < num; i++)
    {
        pid_t id = fork();
        if(id == 0)//子进程
        {
            SubProcessRun();
        }
        
        //全是父进程
        allchild.push_back(id);
    }

    //子进程一直在while循环中，到这的都是父进程
    cout << "我是父进程，我所有孩子的PID是："<<endl;
    for(auto e : allchild)
    {
        cout << e << " "; 
    }

    //同时让父进程也一直运行
    while(true)
    {
        cout << "我是父进程，我的PID是：" << getpid() << "，我的PPID是：" << getppid() << endl;
        sleep(5);
    }

    return 0;
}
